<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      /* 基本数据类型
String Number Boolean Null Undefined

引用数据类型
Object

JS中的变量都是保存到栈内存中的，
基本数据类型的值直接在栈内存中存储，
值与值之间是独立存在，修改一个变量不会影响其他变量


对象是保存到堆内存中的每创建新的对象，就会在堆内存中开辟一个新的空间，
而变量保存的是对象的内存地址（对象的引用），如果两个变量保存的同一个对象引用，
当一个通过变量修改属性时，另一个也会受到影响
*/
      var a = 123;
      var b = a;
      a++;
      /* console.log("a="+a);
console.log("b="+b); */
      var obj = new Object();
      obj.name = "孙悟空";
      var obj2 = obj;
      // 修改obj的name属性
      obj.name = "猪八戒";
      /* console.log(obj.name);
console.log(obj2.name); */
      obj2 = null;
      /* console.log(obj);
console.log(obj2); */
      var c = 10;
      var d = 10;
      // console.log(c==d);
      var obj3 = new Object();
      var obj4 = new Object();
      obj3.name = "沙和尚";
      obj4.name = "沙和尚";
      console.log(obj3);
      console.log(obj4);
      console.log(obj3 == obj4);
    </script>
  </head>
  <body></body>
</html>
